package cn.stu.system.controller;


import cn.stu.common.utils.ApiData;
import cn.stu.framework.dto.MenuDto;
import cn.stu.framework.entity.Menu;
import cn.stu.framework.service.MenuService;
import cn.stu.system.annotation.LogAnnotation;
import lombok.AllArgsConstructor;
import org.springframework.web.bind.annotation.*;


/**
 * 菜单控制器
 *
 * @author 郑志豪
 * @date 2023/09/18
 */
@RestController
@RequestMapping("/menu")
@AllArgsConstructor
public class MenuController {

    /**
     * 服务
     */
    private MenuService service;


    /**
     * 列表
     *
     * @param dto DTO
     * @return {@link ApiData}
     */
    @GetMapping(value = "/list")
    public ApiData list(MenuDto dto) {
        return service.menuList(dto);
    }

    /**
     * 删除
     *
     * @param menuId 菜单ID
     * @return {@link ApiData}
     */
    @LogAnnotation("删除菜单")
    @DeleteMapping(value = "/del")
    public ApiData del(@RequestParam("menuId") Long menuId) {
        return service.menuDel(menuId);
    }


    /**
     * 信息
     *
     * @param menuId 菜单ID
     * @return {@link ApiData}
     *///    @GetMapping(value = "/info")
    public ApiData info(@RequestParam(value = "menuId", required = false) Long menuId) {
        return service.menuInfo(menuId);
    }

    /**
     * 添加
     *
     * @param rs RS
     * @return {@link ApiData}
     */
    @LogAnnotation("添加菜单")
    @PostMapping(value = "/add")
    public ApiData add(@RequestBody Menu rs) {
        return service.menuAdd(rs);
    }

    /**
     * 更新
     *
     * @param rs RS
     * @return {@link ApiData}
     */
    @LogAnnotation("修改菜单")
    @PutMapping(value = "/update")
    public ApiData update(@RequestBody Menu rs) {
        return service.menuUpdate(rs);
    }

}

